package java.recurso;

import java.classe.ClasseEntidade;
import java.classe.TokensSource;
import java.pacote.Pacote;

public class Recurso implements TokensSource {
	Pacote pacote = null;

	boolean all = false;

	String classe = null;

	public Recurso(String pacote) {
		this.pacote = new Pacote(pacote);
	}

	public Recurso(String pacote, String classe) {
		this(pacote);
		this.classe = classe;
	}

	public Recurso(ClasseEntidade classe) {
		this.pacote = classe.getPacote();
		this.classe = classe.getNome();
	}

	public Recurso(String pacote, boolean all) {
		this(pacote);
		this.all = all;
	}
	public Recurso(Pacote pacote, String classe) {
		this.classe=classe;
		this.pacote=pacote;
	}

	public String codigoFonte() {
		String classe = this.classe == null ? NONVALUE : PONTO + this.classe;
		String all = this.all ? ".*" : NONVALUE;
		return IMPORTACAO + ESPACO + pacote.getNome() + classe + all;
	}

	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		final Recurso other = (Recurso) obj;
		if (this.all != other.all)
			return false;
		if (this.classe == null) {
			if (other.classe != null)
				return false;
		} else if (!this.classe.equals(other.classe))
			return false;
		if (this.pacote == null) {
			if (other.pacote != null)
				return false;
		} else if (!this.pacote.equals(other.pacote))
			return false;
		return true;
	}

	// reimplements

}
